iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
自我挑戰組

IT工作中曾遇到的問題系列 第 10

忙裡偷閒,用powershell自動撰寫檢查記錄表

  • 分享至 

  • xImage
  •  

我有檢查系統。我有檢查系統。我有檢查系統。很重要,所以要說三遍。

其實事由是這樣的,因為每天需要檢查系統並且記錄,記錄的方式是用Word,內容部份如下:
https://ithelp.ithome.com.tw/upload/images/20230915/201564032bI7J0ug0B.png

每天手動複製前一天的Word,更改檔案名稱為今天的日期,再將內容變更日期,逐一檢查沒問題再填上ok

由上的步驟可知,有幾個是浪費時間的操作,第一個是手動複製Word,第二是更改檔案名稱,第三是更改內容的日期。

為了增加程式設計的能力,所以用powershell來幫我完成上述的動作。

首先產生一個樣版的Word,檔案為sample.doc,如下:
https://ithelp.ithome.com.tw/upload/images/20230915/20156403rlYF2SsEPp.png

完整的powershell程式碼如下,檔案名稱autoLogWord.ps1

$Path="E:\定期檢查記錄\每日檢查記錄\"

$Word=new-object -ComObject "Word.Application"
$Word.Visible=$true
$Doc=$Word.Documents.open($Path + "sample.doc")

$Table=$Word.ActiveDocument.Tables(1)

$Year=(get-date).tostring("yyyy")
$Month=(get-date).tostring("MM")
$Day=(get-date).tostring("dd")

for($i=2; $i -lt 16; $i++){
  $Table.Cell($i,1).Range.InsertAfter($Year)
  $Table.Cell($i,2).Range.InsertAfter($Month)
  $Table.Cell($i,3).Range.InsertAfter($Day)
}

$NewFile=$Path + $Year + $Month + $Day + ".doc"

$Doc.SaveAs([ref]$NewFile)

$Doc.Close()
$Word.Quit()

explorer.exe 'E:\定期檢查記錄\每日檢查記錄'

程式說明:

其中$Word=new-object -ComObject "Word.Application" :為引入Word應用程式物件
$Doc=$Word.Documents.open($Path + "sample.doc") :就是開啟樣版檔案
$Table=$Word.ActiveDocument.Tables(1) :因為我們要操作的內容是Word的表格,所以要引入,參數1是指Word上第一個表格
for($i=2; $i -lt 16; $i++) :因為表格的第1列是標題,所以從第2列開始,而我的記錄表格實際上有15列,所以加上-lt(小於)的運算子
$Table.Cell($i,1).Range.InsertAfter($Year) :這個就像是Excel的儲存格操作一樣,指定第幾欄第幾列並將資料填上
$NewFile=$Path + $Year + $Month + $Day + ".doc" : 依照今天日期的年、月、日建立檔名
$Doc.SaveAs([ref]$NewFile) : 實際存檔

設定排程

有了程式,當然要設定排程,這樣才能每天自動幫我執行。
https://ithelp.ithome.com.tw/upload/images/20230915/20156403vNhF7YoO0X.png

同步發表至我的Blog:https://blog.twtnn.com/


上一篇
修改EBS 11i的APPS密碼
下一篇
Oracle DB 使用網路服務時出現ORA-24247: 存取控制清單 (ACL) 拒絕網路存取
系列文
IT工作中曾遇到的問題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言